
public class Bruch
{
    private long zähler;
    private long nenner;

 
    public Bruch()
    {
        this.zähler=0;
        nenner=1; //^= this.nenner=1;
    }
 
    public Bruch(long z)
    {
        this.zähler=z;
        this.nenner=1;
    }
 
    public Bruch(long z,long n)
    {
        this.zähler=z;
        this.nenner=n;
    }
 
    public Bruch addBruch(Bruch b)
    {
        Bruch h=new Bruch();
        h.nenner=this.nenner*b.nenner;
        h.zähler=this.zähler*b.nenner+b.zähler*this.nenner;
        h.kürzeBruch();
        return h;
    }
 
    public Bruch subBruch(Bruch b)
    {
        Bruch h=new Bruch();
        h.nenner=this.nenner*b.nenner;
        h.zähler=this.zähler*b.nenner-b.zähler*this.nenner;
        h.kürzeBruch();
        return this;
    }
 
    public Bruch mulBruch(Bruch b)
    {
        Bruch h=new Bruch();
        h.nenner=this.nenner*b.nenner;
        h.zähler=this.zähler*b.zähler;
        h.kürzeBruch();
        return this;
    }
 
    public Bruch divBruch(Bruch b)
    {
        Bruch h=new Bruch();
        h.nenner=this.nenner*b.zähler;
        h.zähler=this.zähler*b.nenner;
        h.kürzeBruch();
        return this;
    }
 
    public void kürzeBruch()
    {
    /*
        long og=this.z�hler;
        if(this.nenner<this.z�hler)
        {
            og=this.nenner;
        }
        //og=kleinerer Wert (Z�hler oder Nenner) - von og bis 2 wir nach ggt gesucht!
        */
        for(long i=this.zähler;i>=2;i--)
        {
            if(this.nenner%i==0 && this.zähler%i==0)
            {
                zähler=zähler/i;
                nenner=nenner/i;
            }
        }
    }
 
    public void showBruch()
    {
        System.out.print(this.zähler+"/"+this.nenner);
    }
 
    public boolean equals(Object obj)
    {
        boolean equ=false;
        if(obj!=null)
        {
            if(obj instanceof Bruch)
            {
                Bruch h=(Bruch)obj;
                h.kürzeBruch();
                this.kürzeBruch();
                equ=(h.zähler==this.zähler)&&(h.nenner==this.nenner);
            }
        }
        return equ;
    }
 
    public String toString()
    {
        return new String(this.zähler+"/"+this.nenner);
    }
    
    public static void main(String[] arg)
    {
        Bruch b1,b2,b3;
        b1=new Bruch(1,5);
        b2=new Bruch(3,10);
        System.out.print(b1.equals(b2));
        System.out.print(b1.toString());
        b3=b1.subBruch(b2);
        b1.showBruch();
        System.out.print(" + ");
        b2.showBruch();
        System.out.print(" = ");
        b3.showBruch();
        System.out.print("\n");
    }
}